Plotly এর মাধ্যমে Data Drill-down Features যোগ করা

Interactive Features যোগ করা - প্লটলি (Plotly) - Big Data and Analytics

283

Data Drill-down হল একটি ইন্টারেকটিভ ফিচার যা ব্যবহারকারীদের গ্রাফের উপর ক্লিক করে আরও বিস্তারিত বা নিম্নস্তরের ডেটা দেখতে সহায়তা করে। Plotly এই ধরনের ইন্টারেক্টিভ ডেটা ভিজুয়ালাইজেশন তৈরি করার জন্য বেশ উপকারী টুল। এই ধরনের ড্রিল-ডাউন ফিচার সাধারণত গ্রাফের পয়েন্টে ক্লিক করার মাধ্যমে প্রদর্শিত হয় এবং এটি আরও ডিটেইলড তথ্য প্রদান করে।

এখানে, আমরা Plotly ব্যবহার করে কিভাবে Data Drill-down ফিচার যোগ করা যায়, সে সম্পর্কে আলোচনা করবো।


Data Drill-down Features যোগ করার পদ্ধতি

Plotly এ Data Drill-down যোগ করতে সাধারণত callback functions এবং Dash ফ্রেমওয়ার্ক ব্যবহার করা হয়। Dash হলো Plotly এর একটি ফ্রেমওয়ার্ক যা ডেটা ইন্টারেকশন এবং ড্যাশবোর্ড তৈরি করার জন্য ব্যবহৃত হয়। নিচে Dash ব্যবহার করে Data Drill-down ফিচার তৈরি করার পদ্ধতি তুলে ধরা হয়েছে।


Dash-এ Data Drill-down তৈরি করা

১. Dash এবং Plotly ইনস্টল করা

প্রথমে Dash এবং Plotly ইনস্টল করতে হবে। যদি এগুলি ইনস্টল না থাকে, তাহলে নিচের কমান্ড ব্যবহার করে এগুলো ইনস্টল করা যাবে:

pip install dash plotly

২. Dash অ্যাপ তৈরি করা

এখানে আমরা একটি সিম্পল গ্রাফ তৈরি করবো এবং সেটি ক্লিক করার মাধ্যমে ড্রিল-ডাউন করতে পারবো।

কোড উদাহরণ:

import dash
from dash import dcc, html
import plotly.express as px
from dash.dependencies import Input, Output

# Dash অ্যাপ তৈরি করা
app = dash.Dash(__name__)

# উদাহরণ ডেটাসেট
data = px.data.gapminder()

# গ্রাফ তৈরি করা
fig = px.scatter(data, x="gdpPercap", y="lifeExp", color="continent", hover_name="country", size="pop")

# অ্যাপ লেআউট তৈরি করা
app.layout = html.Div([
    dcc.Graph(id='main-graph', figure=fig),
    html.Div(id='drilldown-output')  # ড্রিলডাউন তথ্য দেখানোর জন্য একটি div
])

# Callback function দিয়ে Data Drill-down ফিচার যোগ করা
@app.callback(
    Output('drilldown-output', 'children'),
    Input('main-graph', 'clickData')
)
def display_click_data(clickData):
    if clickData is None:
        return "কোনো পয়েন্ট নির্বাচন করা হয়নি।"
    
    # ক্লিক করা ডেটার তথ্য প্রদর্শন
    country = clickData['points'][0]['hovertext']
    gdp = clickData['points'][0]['x']
    life_exp = clickData['points'][0]['y']
    pop = clickData['points'][0]['marker.size']
    
    return f"আপনি '{country}' নির্বাচন করেছেন। GDP: {gdp}, Life Expectancy: {life_exp}, Population: {pop}"

# অ্যাপ চালানো
if __name__ == '__main__':
    app.run_server(debug=True)

ব্যাখ্যা:

  • Dash অ্যাপ: প্রথমে Dash অ্যাপ তৈরি করা হয়েছে এবং এটি Plotly গ্রাফের সাথে ইন্টিগ্রেট করা হয়েছে।
  • clickData: dcc.Graph কম্পোনেন্টে clickData ইনপুট ব্যবহার করা হয়েছে, যা গ্রাফের কোনো পয়েন্টে ক্লিক করলে সেই পয়েন্টের ডেটা সংগ্রহ করে।
  • display_click_data: এই callback function এর মাধ্যমে ক্লিক করা পয়েন্টের সাথে সম্পর্কিত ডেটা (যেমন, দেশের নাম, GDP, জীবন প্রত্যাশা, জনসংখ্যা) ড্রিলডাউন হিসেবে প্রদর্শন করা হয়েছে।
  • hovertext: Tooltip-এ যেসব তথ্য দেখানো হয়, সেগুলো hovertext দিয়ে পাওয়া যায় এবং তা Drill-down এর জন্য ব্যবহার করা হয়।

Dash অ্যাপের কার্যকারিতা

এভাবে, যখন ব্যবহারকারী Scatter Plot-এ কোনো পয়েন্টে ক্লিক করবেন, তখন সেই পয়েন্টের বিস্তারিত তথ্য (যেমন, দেশের নাম, GDP, জীবন প্রত্যাশা, এবং জনসংখ্যা) নিচে একটি Div-এ প্রদর্শিত হবে। এটি একটি সাধারণ Data Drill-down ফিচার, যা আপনাকে গ্রাফের ইন্টারেকশন এবং ডেটা বিশ্লেষণে সহায়তা করে।


Drill-down ফিচারের উন্নত ব্যবহার

Dash-এ Drill-down ফিচার আরও উন্নত করা যেতে পারে। উদাহরণস্বরূপ:

  1. Multiple Layers of Drill-down: প্রথম স্তরের ডেটা ক্লিক করে দ্বিতীয় স্তরের ডেটা দেখানো যেতে পারে।
  2. Dropdowns: Dropdown মেনু ব্যবহার করে ব্যবহারকারীকে আরও নির্দিষ্ট ডেটা দেখানোর সুযোগ দেওয়া যায়।
  3. Zoom-in & Filter: গ্রাফের মধ্যে জুম ইন করে আরও সুনির্দিষ্ট ডেটা বিশ্লেষণ করা যেতে পারে।

সারাংশ

Plotly এবং Dash ব্যবহার করে সহজেই Data Drill-down ফিচার তৈরি করা সম্ভব। Dash একটি শক্তিশালী ফ্রেমওয়ার্ক যা ইন্টারেক্টিভ ড্যাশবোর্ড এবং ভিজুয়ালাইজেশন তৈরি করতে সাহায্য করে, এবং এর মাধ্যমে ডেটা ক্লিক করে আরও বিস্তারিত বিশ্লেষণ করা যায়। Drill-down ফিচার ব্যবহারের মাধ্যমে ব্যবহারকারীকে গ্রাফের আরও গভীর তথ্য জানানো যায়, যা ডেটা বিশ্লেষণ এবং প্রেজেন্টেশনে নতুন মাত্রা যোগ করে।

Content added By
Promotion

Are you sure to start over?

Loading...